package com.glr.industry.controller;

import com.glr.common.contants.CodeEnum;
import com.glr.common.utils.ResultUtils;
import com.glr.industry.entity.IndustryEntity;
import com.glr.industry.service.IndustryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;

/**
 * 行业控制层
 *
 * @author GLoRy
 * @date 2021/6/8 11:51
 */
@RestController
@RequestMapping("/industry")
public class IndustryController {

    @Autowired
    private IndustryService industryService;

    /**
     * 添加行业信息
     *
     * @param industryEntity 行业实体
     * @return 添加结果
     */
    @PostMapping("/save")
    public ResultUtils save(@RequestBody IndustryEntity industryEntity) {
        industryService.save(industryEntity);
        return new ResultUtils(true, CodeEnum.SUCCEED, "添加行业信息成功");
    }

    /**
     * 根据id修改行业信息
     *
     * @param industryEntity 行业实体
     * @param id             行业id
     * @return 修改结果
     */
    @PutMapping("/update/{id}")
    public ResultUtils update(@RequestBody IndustryEntity industryEntity, @PathVariable String id) {
        industryEntity.setIndustryId(Integer.valueOf(id));
        industryService.update(industryEntity);
        return new ResultUtils(true, CodeEnum.SUCCEED, "修改行业信息成功");
    }

    /**
     * 根据id删除行业信息
     *
     * @param id 行业id
     * @return 删除信息
     */
    @DeleteMapping("/delete/{id}")
    public ResultUtils delete(@PathVariable String id) {
        industryService.delete(Integer.valueOf(id));
        return new ResultUtils(true, CodeEnum.SUCCEED, "修改行业信息成功");
    }

    @GetMapping("/findById/{id}")
    public ResultUtils findById(@PathVariable String id) {
        return new ResultUtils(true, CodeEnum.SUCCEED, "查询对应行业信息成功", industryService.findById(Integer.valueOf(id)));
    }

    /**
     * 查询所有行业方向信息
     *
     * @return 查询行业信息的结果
     */
    @GetMapping("/findAll")
    public ResultUtils findAll() {
        return new ResultUtils(true, CodeEnum.SUCCEED, "查询行业信息成功", industryService.findAll());
    }

    /**
     * 分页查询所有行业方向信息
     *
     * @param page     当前页
     * @param pageSize 每页条数
     * @return 分页查询行业的信息的结果
     */
    @GetMapping("/findByPage/{page}/{pageSize}")
    public ResultUtils findByPage(@PathVariable String page, @PathVariable String pageSize) {
        Page<IndustryEntity> industryEntities = industryService.findByPage(Integer.valueOf(page), Integer.valueOf(pageSize));
        return new ResultUtils(true, CodeEnum.SUCCEED, "查询行业信息成功", industryEntities);
    }
}
